package com.tianji.aigc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tianji.aigc.domain.po.ChatSession;
import com.tianji.aigc.domain.vo.ChatSessionVO;
import com.tianji.aigc.domain.vo.MessageVO;
import com.tianji.aigc.domain.vo.SessionVO;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 对话session 服务类
 * </p>
 *
 * @author 东哥
 * @since 2025-07-21
 */
public interface IChatSessionService extends IService<ChatSession> {
    /**
     * 1- 新建会话(Day1 - 随堂1)
     * @param num 热门问题数量
     */
    SessionVO createSession(Integer num);

    /**
     * 2- 换一换-热门问题(Day1 - 随堂2)
     */
    List<SessionVO.Example> hot(Integer num);


    /**
     * 3、通过 会话ID 获取会话详情(Day1 - 作业2)
     * @param sessionId
     * @return
     */
    List<MessageVO> getChatRecord(String sessionId);

    /**
     * 4、异步更新会话标题(Day3 - 随堂1)
     * @param sessionId
     * @param userId
     * @param title
     */
    void update(String sessionId, Long userId, String title);

    /**
     * 5、查询历史会话列表 - Day3 - 随堂2
     * @return
     */
    Map<String, List<ChatSessionVO>> queryHistorySession();

    /**
     * 6、删除历史会话列表- Day3 - 练习1
     *
     * @param sessionId 会话id
     */
    void deleteHistorySession(String sessionId);

    /**
     * 7、更新历史会话标题- Day3 - 练习2
     *
     * @param sessionId 会话id
     * @param title     标题
     */
    void updateTitle(String sessionId, String title);

}
